// AP(r) Computer Science Marine Biology Simulation:
// The SimpleMBSDemo2 class is copyright(c) 2002 College Entrance
// Examination Board (www.collegeboard.com).
//
// This class is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation.
//
// This class is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
/**
* AP® Computer Science Marine Biology Simulation:<br>
* The <code>SimpleMBSDemo2</code> class provides a main method that creates
* a simulation of a number of fish swimming in a bounded environment.
* It also creates a simple window in which to view the environment
* after each timestep in the simulation. This version of the MBS demo uses
* an object of the <code>Simulation</code> class.
*
* <p>
* This class will NOT be tested on the Advanced Placement exam.
*
* <p>
* The <code>SimpleMBSDemo2</code> class is
* copyright© 2002 College Entrance Examination Board
* (www.collegeboard.com).
*
* @author Alyce Brady
* @author Chris Nevison
* @version 1 July 2002
**/
import java.awt.Color;
public class SimpleMBSDemo2
{
// Specify number of rows and columns in environment.
private static final int ENV_ROWS = 10; // rows in environment
private static final int ENV_COLS = 10; // columns in environment
// Specify how many timesteps to run the simulation.
private static final int NUM_STEPS = 15; // number of timesteps
// Specify the time delay for each step
private static final int DELAY = 1000; // delay in milliseconds
/** Start the Marine Biology Simulation program.
* The String arguments (args) are not used in this application.
**/
public static void main(String[] args)
{
// Construct an empty environment and several fish in the context
// of that environment.
BoundedEnv env = new BoundedEnv(ENV_ROWS, ENV_COLS);
Fish f1 = new Fish(env, new Location(2, 2), Direction.NORTH, Color.red);
Fish f2 = new Fish(env, new Location(2, 3), Direction.SOUTH, Color.green);
Fish f3 = new Fish(env, new Location(5, 8), Direction.EAST, Color.blue);
Fish f4 = new Fish(env, new Location(3, 2), Direction.WEST, Color.yellow, .05, .1);
// Construct an object that knows how to draw the environment with
// a delay.
SimpleMBSDisplay display = new SimpleMBSDisplay(env, DELAY);
// Construct the simulation object. It needs to have the environment
// and the object that can draw the environment.
Simulation sim = new Simulation(env, display);
// Run the simulation for the specified number of steps.
for ( int i = 0; i < NUM_STEPS; i++ )
{
sim.step();
if (i % 2 == 0 || i == 0)
f1.changeColor(Color.BLACK);
if (i % 2 == 1)
f1.changeColor(Color.RED);
}
}
}